#pragma once

#include "IReferenceCounter.h"
#include "Sol9Types.h"

namespace sol9
{
namespace entity
{

	typedef u32 entity_id;

	class EntityBase : public IReferenceCounter
	{
		__declareBaseClass(EntityBase);

	private:
		static entity_id allocID;
		entity_id uniqueID;

	public:
		EntityBase();
		virtual ~EntityBase();

		entity_id getUniqueID() const;

	private:
		void _allocUniqueID();
	};

} // namespace entity
} // namespace sol9